/***************************************************************************
[FileName]
-------------------
    begin                : [FileDate]
    copyright            : by kuzkok
    email                : kuzkok@gmail.com

***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*   
*   Данная программа является свободным программным обеспечением;         *
*   Вы можете распространять ее и/или модифицировать в соответствии с     *
*   GNU General Public License опубликованной Фондом свободного           *
*   программного обеспечения; используемая версия лицензии - 2 или        *
*   (по вашему выбору) любая более поздняя                                *
***************************************************************************/

#ifndef LISTWIDGET_H
#define LISTWIDGET_H

#include <QFrame>
#include <QtSql>
#include <QSortFilterProxyModel>
#include <QMessageBox>
//#include <qgsmapcanvas.h>
//#include <qgsvectorlayer.h>

#include "customrelationmodel.h"

namespace Ui {
    class ListWidget;
}

class ListWidget : public QFrame
{
    Q_OBJECT

public:
    explicit ListWidget(QWidget *parent = 0);
    ~ListWidget();
    virtual void loadData(QString theTableName, QString where_clause);
public slots:
    void temslot();
    void selectionChanged(QItemSelection, QItemSelection);
    void zoomToSelected();
    void invertSelection();
    void showCard(QModelIndex idx);
    void saveChanges();    
    void changeEditMode();
    void dataChanged()
    { isDirty = true;  }
    void addRow()
    {
        tableModel->insertRow(0);
//        QSqlRecord rec = tableModel->record();
//        QVariant var = QUuid::createUuid().toString();
//        rec.setValue("eventid", var);
//        if(!tableModel->insertRecord(0, rec));
//            QMessageBox::critical(this, "error", tableModel->lastError().text());
    }
    void removeSelected();
private:        
    Ui::ListWidget *ui;
    //Работа с базой данных
    QString tableName;
    CustomRelationModel *tableModel;
    QMap<QString, QString> fieldAliases;
    bool isDirty;
    //Работа с картой
    //QgsMapCanvas *mapCanvas;
    //QgsVectorLayer *layer;


};

#endif // LISTWIDGET_H
